import matplotlib.pyplot as plt


def plot_four_data():
    names = ["Buffer_layer", "Layered_CBS", "metropolis Ⅱ", "Six_layers"]
    data = []
    try:
        for name in names:
            num = float(input(f"请输入 {name} 的数据: "))
            data.append(num)

        # 定义不同颜色的列表
        colors = ['red', 'green', 'blue', 'yellow']

        # 调整条形图宽度
        bars = plt.bar(names, data, color=colors, width=0.3)

        # 在每个条形图上方添加数据标签
        for bar in bars:
            height = bar.get_height()
            plt.text(bar.get_x() + bar.get_width() / 2, height,
                     f'{height}', ha='center', va='bottom')

        plt.xlabel('数据名称')
        plt.ylabel('数据值')
        plt.title('四个数据的条形图')

        plt.show()
    except ValueError:
        print("输入的数据不是有效的数字，请输入有效的数字。")


if __name__ == "__main__":
    plot_four_data()
